package com.ssy.lingxi.after.sale.model.vo.response;

import com.ssy.lingxi.after.sale.model.constant.ReplaceGoodsInnerStatusEnum;
import com.ssy.lingxi.after.sale.model.constant.ReplaceGoodsOuterStatusEnum;

import java.io.Serializable;
import java.util.List;

/**
 * 换货申请查询VO
 * @author 伍将
 * @date 2020/9/11
 * @version 2.0.0
 */
public class ReplaceGoodsQueryAppVO implements Serializable {

    private static final long serialVersionUID = -1869142989505327616L;

    public ReplaceGoodsQueryAppVO() {
    }

    public ReplaceGoodsQueryAppVO(Long replaceId, String applyNo, Integer innerStatus, Integer outerStatus, Long shopId, String shopLogo, String shopName, Long returnLogisticsId, Long returnDeliveryId, Long replaceStorageId, Long replaceDeliveryId,Integer orderType) {
        this.replaceId = replaceId;
        this.applyNo = applyNo;
        this.innerStatus = innerStatus;
        this.innerStatusName= ReplaceGoodsInnerStatusEnum.getMessage(innerStatus);
        this.outerStatus = outerStatus;
        this.outerStatusName= ReplaceGoodsOuterStatusEnum.getMessage(outerStatus);
        this.shopId = shopId;
        this.shopLogo = shopLogo;
        this.shopName = shopName;
        this.returnLogisticsId = returnLogisticsId;
        this.returnDeliveryId=returnDeliveryId;
        this.replaceStorageId=replaceStorageId;
        this.replaceDeliveryId=replaceDeliveryId;
        this.orderType=orderType;
    }

    /**
     * 换货id
     */
    private Long replaceId;

    /**
     * 申请单号
     */
    private String applyNo;


    /**
     * 内部状态
     * 待提交换货 - 1
     * 审核通过(提交) - 2
     * 审核不通过(提交) - 30
     * 审核通过(一级) - 3
     * 审核不通过(一级) - 31
     * 审核通过(二级) - 4
     * 审核不通过(二级) - 5
     * 审核通过(确认) - 6
     * 审核不通过(确认) - 7
     * 待新增退货发货单 - 8
     * 待审核退货发货单 - 9
     * 待新退货增物流单 - 10
     * 待确认退货物流单 - 11
     * 待确认退货发货 - 12
     * 待新增退货入库单 - 13
     * 待审核退货入库单 - 14
     * 待确认退货收货 - 15
     * 待确认退货回单 - 16
     * 待新增换货发货单 - 17
     * 待审核换货发货单 - 18
     * 待新增换货物流单 - 19
     * 待确认换货物流单 - 20
     * 待确认换货发货 - 21
     * 待新增换货入库单 - 22
     * 待审核换货入库单 - 23
     * 待确认换货收货 - 24
     * 待确认换货回单 - 25
     * 待确认售后完成 - 26
     * 已确认售后完成 - 27
     * 不接受退货物流单 - 28
     * 不接受换货物流单 - 29
     */
    private Integer innerStatus;

    /**
     * 内部状态名称
     */
    private String innerStatusName;

    /**
     * 外部状态
     * 待提交申请单 - 1
     * 待确认申请单（已提交申请单） - 2
     * 不接受申请（确认申请单） - 3
     * 接受申请（确认申请单） - 4
     * 待新增退货发货单（确认申请单后） - 5
     * 采购商待新增物流单（新增换货发货单审核通过） - 6
     * 待退货发货（新增物流单审核通过） - 7
     * 待新增退货入库单（已退货发货） - 8
     * 待退货收货（已新增换货入库单） - 9
     * 待确认退货回单（已换货收货） - 10
     * 待新增换货发货单（已确认换货回单） - 11
     * 供应商待新增物流单（已新增换货发货单） - 12
     * 待换货发货（已新增物流单） - 13
     * 待新增换货入库单（已换货发货） -14
     * 待换货收货（已新增换货入库单） - 15
     * 待确认换货回单（已换货收货） - 16
     * 待确认售后完成（确认换货回单） - 17
     * 售后完成 - 18
     */
    private Integer outerStatus;

    /**
     * 外部状态名称
     */
    private String outerStatusName;

    /**
     * 店铺id
     */
    private Long shopId;
    /**
     * 店铺logo
     */
    private String shopLogo;
    /**
     * 店铺名称
     */
    private String shopName;
    /**
     * 退货物流单Id
     */
    private Long returnLogisticsId;
    /**
     * 退货发货单id
     */
    private Long returnDeliveryId;
    /**
     * 退货入库单id
     */
    private Long replaceStorageId;
    /**
     * 换货发货单id
     */
    private Long replaceDeliveryId;
    /**
     * 订单类型（取商品）
     */
    private Integer orderType;
    /**
     * 退货商品列表.
     */
    private List<ReplaceGoodsQueryProductAppVO> productList;

    public Long getReplaceId() {
        return replaceId;
    }

    public void setReplaceId(Long replaceId) {
        this.replaceId = replaceId;
    }

    public String getApplyNo() {
        return applyNo;
    }

    public void setApplyNo(String applyNo) {
        this.applyNo = applyNo;
    }

    public Integer getInnerStatus() {
        return innerStatus;
    }

    public void setInnerStatus(Integer innerStatus) {
        this.innerStatus = innerStatus;
    }

    public String getInnerStatusName() {
        return innerStatusName;
    }

    public void setInnerStatusName(String innerStatusName) {
        this.innerStatusName = innerStatusName;
    }

    public Integer getOuterStatus() {
        return outerStatus;
    }

    public void setOuterStatus(Integer outerStatus) {
        this.outerStatus = outerStatus;
    }

    public String getOuterStatusName() {
        return outerStatusName;
    }

    public void setOuterStatusName(String outerStatusName) {
        this.outerStatusName = outerStatusName;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public String getShopLogo() {
        return shopLogo;
    }

    public void setShopLogo(String shopLogo) {
        this.shopLogo = shopLogo;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public Long getReturnLogisticsId() {
        return returnLogisticsId;
    }

    public void setReturnLogisticsId(Long returnLogisticsId) {
        this.returnLogisticsId = returnLogisticsId;
    }

    public List<ReplaceGoodsQueryProductAppVO> getProductList() {
        return productList;
    }

    public void setProductList(List<ReplaceGoodsQueryProductAppVO> productList) {
        this.productList = productList;
    }

    public Long getReturnDeliveryId() {
        return returnDeliveryId;
    }

    public void setReturnDeliveryId(Long returnDeliveryId) {
        this.returnDeliveryId = returnDeliveryId;
    }

    public Long getReplaceStorageId() {
        return replaceStorageId;
    }

    public void setReplaceStorageId(Long replaceStorageId) {
        this.replaceStorageId = replaceStorageId;
    }

    public Long getReplaceDeliveryId() {
        return replaceDeliveryId;
    }

    public void setReplaceDeliveryId(Long replaceDeliveryId) {
        this.replaceDeliveryId = replaceDeliveryId;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }
}
